home *** CD-ROM | disk | FTP | other *** search
/ Delphi Magazine Collection 2001 / Delphi Magazine Collection 20001 (2001).iso / DISKS / Issue57 / Clinic / HelpTestU.pas < prev    next >
Pascal/Delphi Source File  |  2000-03-24  |  1KB  |  55 lines

  1. unit HelpTestU;
  2.  
  3. interface
  4.  
  5. uses
  6.   Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  7.   StdCtrls, ExtCtrls;
  8.  
  9. type
  10.   TForm1 = class(TForm)
  11.     Panel1: TPanel;
  12.     Button1: TButton;
  13.     Button2: TButton;
  14.     procedure FormCreate(Sender: TObject);
  15.   private
  16.     { Private declarations }
  17.   public
  18.     { Public declarations }
  19.   end;
  20.  
  21. var
  22.   Form1: TForm1;
  23.  
  24. implementation
  25.  
  26. {$R *.DFM}
  27.  
  28. //Remove WS_EX_CONTROLPARENT, where set, to allow context help to work
  29. procedure FixContextHelp(Form: TCustomForm);
  30. var
  31.   Loop, OldExStyle: Integer;
  32.   Handle: HWnd;
  33.   Control: TControl;
  34. begin
  35.   for Loop := 0 to Form.ControlCount - 1 do
  36.   begin
  37.     Control := Form.Controls[Loop];
  38.     if (csAcceptsControls in Control.ControlStyle) and
  39.        (Control is TWinControl) then
  40.     begin
  41.       Handle := TWinControl(Control).Handle;
  42.       OldExStyle := GetWindowLong(Handle, GWL_EXSTYLE);
  43.       SetWindowLong(Handle, GWL_EXSTYLE,
  44.         OldExStyle and not WS_EX_CONTROLPARENT)
  45.     end
  46.   end
  47. end;
  48.  
  49. procedure TForm1.FormCreate(Sender: TObject);
  50. begin
  51.   FixContextHelp(Self)
  52. end;
  53.  
  54. end.
  55.